Automatic multimedia slideshows for social media-enabled mobile devices

ABSTRACT

Apparatus, computer-readable storage media, and methods are disclosed for allowing wireless communication device users to retrieve and view photographs, videos, and other media content using mobile computing platforms for display using a slideshow application. According to one disclosed embodiment, a method of performing a client-side slideshow application on a wireless communication device comprises, based on detecting that that wireless communication device is connected to a charging device, automatically invoking a slideshow application operable to display a series of images using the wireless communication device. The method further comprises transmitting a request for images via the Internet and receiving a series of images selected based at least in part on the request, adding at least one image from the series of images to an image playlist, and displaying at least a portion of the image playlist sequentially using the slideshow application on the wireless communication device.

FIELD

The present disclosure pertains to apparatus and methods forautomatically presenting media from local or remote sources using acommunications device.

BACKGROUND

With the increasing popularity of digital photography and videographyusing mobile computing platforms having access to social networkingsites, there is a need for improving user experience by allowing easypresentation of digital photographs and video using mobile computingplatforms, including cellphone devices, handheld devices, handheldcomputers, smartphones, and PDAs.

Current applications for photograph and video playback can becumbersome, and require manual intervention in order to launch playback(e.g., photo or video slideshow applications) and to find or retrievecontent that is desirable to a particular user.

Therefore, there exists ample opportunity for improvement intechnologies to facilitate retrieval and presentation of digital photoand video images with wireless communication devices.

SUMMARY

Apparatus, computer-readable storage media, and methods are disclosedfor allowing wireless communication device users to retrieve and viewphotographs, videos, and other media content using mobile computingplatforms.

In one embodiment a method is disclosed for invoking a client-sideslideshow application on a wireless communication device when adetection is made that the wireless communication device is connected toa charging device. Using the slideshow application, a series of imagescan be displayed. Images can be received from a network (e.g., theInternet) and streamed or downloaded to a client device for display in aplaylist. Alternatively, the playlist can be a mixture of streamedimages and stored images.

In yet another embodiment, if the charging device is disconnected fromthe client, the slideshow can automatically terminate.

In yet another embodiment, authentication can be used to authenticatethe wireless communication device prior to receiving content from anetwork.

The foregoing and other objects, features, and advantages of theinvention will become more apparent from the following detaileddescription, which proceeds with reference to the accompanying figures.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a system diagram depicting an exemplary mobile device,including a variety of optional hardware and software components.

FIG. 2 is a diagram depicting an exemplary computing environmentsuitable for implementing described embodiments, techniques, andtechnologies disclosed herein.

FIG. 3 is a diagram depicting a more detailed example of the socialnetworking site depicted in FIG. 2.

FIG. 4A is an illustration of two mobile devices displaying slide showapplications while being rotated.

FIG. 4B is an illustration of a slideshow application displaying asequence of images based on media content data.

FIG. 5 is a flow chart that outlines an exemplary method of receivingslideshow media data based on a request.

FIG. 6 is a flow chart that further details the exemplary methoddepicted in FIG. 5.

FIG. 7 is a flow chart that outlines an exemplary method of selectingmedia data associated with third-party users.

FIG. 8 is a flow chart that further details the exemplary methoddepicted in FIG. 7.

FIG. 9 is a flow chart that outlines an exemplary method of determiningrelevant media data based on received media data and metadata.

FIG. 10 illustrates a generalized example of a suitable computingenvironment in which described embodiments, techniques, and technologiescan be implemented.

FIG. 11 illustrates a generalized example of a suitable implementationenvironment for a mobile device connected to a computing cloud.

DETAILED DESCRIPTION

This disclosure is set forth in the context of representativeembodiments that are not intended to be limiting in any way.

As used in this application and in the claims, the singular forms “a,”“an,” and “the” include the plural forms unless the context clearlydictates otherwise. Additionally, the term “includes” means “comprises.”Further, the term “coupled” encompasses mechanical, electrical,magnetic, optical, as well as other practical ways of coupling orlinking items together, and does not exclude the presence ofintermediate elements between the coupled items.

The described things and methods described herein should not beconstrued as being limiting in any way. Instead, this disclosure isdirected toward all novel and non-obvious features and aspects of thevarious disclosed embodiments, alone and in various combinations andsub-combinations with one another. The disclosed systems, methods, andapparatus are not limited to any specific aspect or feature orcombinations thereof, nor do the disclosed things and methods requirethat any one or more specific advantages be present or problems besolved.

Although the operations of some of the disclosed methods are describedin a particular, sequential order for convenient presentation, it shouldbe understood that this manner of description encompasses rearrangement,unless a particular ordering is required by specific language set forthbelow. For example, operations described sequentially may in some casesbe rearranged, omitted, or performed concurrently. Moreover, for thesake of simplicity, the attached figures may not show the various waysin which the disclosed things and methods can be used in conjunctionwith other things and methods. Additionally, the description sometimesuses terms like “produce,” “generate,” “select,” “capture,” and“provide” to describe the disclosed methods. These terms are high-levelabstractions of the actual operations that are performed. The actualoperations that correspond to these terms can vary depending on theparticular implementation and are readily discernible by one of ordinaryskill in the art.

Any of the disclosed methods can be implemented as computer-executableinstructions stored on one or more computer-readable storage media(e.g., non-transitory computer-readable media, such as one or morevolatile memory components (such as DRAM or SRAM), or nonvolatile memorycomponents (such as hard drives)) and executed on a computer (e.g., anycommercially available computer, including smartphones or other wirelesscommunication devices that include computing hardware). Any of thecomputer-executable instructions for implementing the disclosedtechniques as well as any data created and used during implementation ofthe disclosed embodiments can be stored on one or more computer-readablemedia (e.g., non-transitory computer-readable media). Thecomputer-executable instructions can be part of, for example, adedicated software application or a software application that isaccessed or downloaded via a web browser or other software application(such as a remote computing application). Such software can be executed,for example, on a single local computer (e.g., any suitable commerciallyavailable computer) or in a network environment (e.g., via the Internet,a wide-area network, a local-area network, a client-server network (suchas a cloud computing network), or other such network) using one or morenetwork computers.

For clarity, only certain selected aspects of the software-basedimplementations are described. Other details that are well known in theart are omitted. For example, it should be understood that the disclosedtechnology is not limited to any specific computer language or program.For instance, the disclosed technology can be implemented by softwarewritten in C++, Java, Perl, JavaScript, HTML5, or any other suitableprogramming language. Likewise, the disclosed technology is not limitedto any particular computer or type of hardware. Certain details ofsuitable computers and hardware are well known and need not be set forthin detail in this disclosure.

Furthermore, any of the software-based embodiments (comprising, forexample, computer-executable instructions for causing a computer toperform any of the disclosed methods) can be uploaded, downloaded, orremotely accessed through a suitable communication means. Such suitablecommunication means include, for example, the Internet, the World WideWeb, an intranet, software applications, cable (including fiber opticcable), magnetic communications, electromagnetic communications(including RF, microwave, and infrared communications), electroniccommunications, or other such communication means.

Theories of operation, scientific principles or other theoreticaldescriptions presented herein in reference to the apparatus or methodsof this disclosure have been provided for the purposes of betterunderstanding and are not intended to be limiting in scope. Theapparatus and methods in the appended claims are not limited to thoseapparatus and methods that function in the manner described by suchtheories of operation.

In the following description, certain terms may be used such as “up,”“down,” “upper,” “lower,” “horizontal,” “vertical,” “left,” “right,”“over,” “on,” “near,” and the like. These terms are used, whereapplicable, to provide some clarity of description when dealing withrelative relationships. But, these terms are not intended to implyabsolute relationships, positions, and/or orientations.

As used in this disclosure, “automatically” means that an act can occurafter a previous act without the need to receive additional user inputbefore initiating performance of the act.

As used in the disclosure, “application” includes programs implementedwith computer-executable instructions executable by a wirelesscommunication device, as well as programs where some or all of theapplication functionality is accessed over a network, for example,network applications or web applications.

I. Example Wireless Communication Device

FIG. 1 is a system diagram depicting an exemplary wireless communicationdevice 100 including a variety of optional hardware and softwarecomponents, shown generally at 102. Any components 102 in the wirelesscommunication device can communicate with any other component, althoughnot all connections are shown, for ease of illustration. The wirelesscommunication device can be any of a variety of computing devices (e.g.,a cell phone, smartphone, handheld computer, or Personal DigitalAssistant (PDA)) and can allow wireless two-way communications with oneor more mobile communications networks 104, such as a cellular orsatellite network.

The illustrated wireless communication device 100 can include acontroller or processor 110 (e.g., a signal processor, microprocessor,ASIC, or other control and processing logic circuitry) for performingsuch tasks as signal coding, data processing, input/output processing,power control, and/or other functions. An operating system 112 cancontrol the allocation and usage of the components 102, and providesupport for one or more slideshow application programs 113, applicationprograms 114, and locally-stored media data 115. The applicationprograms 114 can include common mobile computing applications (e.g.,image-capture applications, email applications, calendars, contactmanagers, web browsers, messaging applications), or any other computingapplication.

The illustrated wireless communication device 100 can include memory120. Memory 120 can include non-removable memory 122 and/or removablememory 124. The non-removable memory 122 can include RAM, ROM, flashmemory, a hard disk, or other well-known memory storage technologies.The removable memory 124 can include flash memory or a SubscriberIdentity Module (SIM) card, which is well known in GSM communicationsystems, or other well-known memory storage technologies, such as “smartcards.” The memory 120 can be used for storing data and/or code forrunning the operating system 112 and the discovered applications 114.Example data can include media data, such as web pages, text, images,sound files, video data, or other data sets that can be sent to and/orreceived from one or more network servers or other devices via one ormore wired or wireless networks. The memory 120 can be used to store asubscriber identifier, such as an International Mobile SubscriberIdentity (IMSI), and an equipment identifier, such as an InternationalMobile Equipment Identifier (IMEI). Such identifiers can be transmittedto a network server to identify users and equipment.

The wireless communication device 100 can support one or more inputdevices 130, such as a touch screen 132, microphone 134, camera 136,physical keyboard 138, trackball 140, compass 142, accelerometer 146,and/or gyroscope 148, and one or more output devices 150, such as aspeaker 152 and one or more displays 154. Other possible output devices(not shown) can include piezoelectric or haptic output devices. Somedevices can serve more than one input/output function. For example,touchscreen 132 and display 154 can be combined in a single input/outputdevice.

A wireless modem 160 can be coupled to an antenna (not shown) and cansupport two-way communications between the processor 110 and externaldevices, as is well understood in the art. The modem 160 is showngenerically and can include a cellular modem for communicating with themobile communication network 104 and/or other radio-based modems (e.g.,Wi-Fi 162 or Bluetooth 164). The wireless modem 160 is typicallyconfigured for communication with one or more cellular networks, such asa GSM network for data and voice communications within a single cellularnetwork, between cellular networks, or between the wirelesscommunication device and a public switched telephone network (PSTN).

The wireless communication device 100 can further include at least oneinput/output port 180, a power supply 182, a satellite navigation systemreceiver 184, such as a Global Positioning System (GPS) receiver, and/ora physical connector 190, which can be a USB port, IEEE 1394 (FireWire)port, RS-232, or other suitable connector. The illustrated components102 are not required or all-inclusive, as any components can be deletedand other components can be added.

The wireless communication device 100 can use multiple input sources fordetermining geospatial position, velocity, or orientation of thewireless communication device. For example, GPS receiver 184 can be usedto determine geospatial coordinates by receiving signals transmittedfrom global positioning satellites. Alternatively, signals received fromone or more mobile communications networks 104 (e.g., terrestrialcommunication networks) can be used to determine geospatial coordinates.In some examples, data received using GPS receiver 184 and one or moremobile communications networks 104 can be combined to provide moreaccurate geospatial position or orientation, and in a faster manner. Inaddition, the wireless communication device 100 can use data from one ormore compasses 142, accelerometers 146 and/or gyroscopes 148 tocalculate the orientation, velocity, and/or heading of the wirelesscommunication device.

II. Example Implementation Environment

FIG. 2 depicts an example computing environment 200 suitable forimplementing described embodiments, techniques, and technologiesdisclosed herein. As shown, a user 205 is holding a cellphone 210 (anexample of a wireless communication device). In some examples, otherplatforms can be used, including but not limited to, mobile phones,smartphones, PDAs, handheld devices, handheld computers, PDAs, touchscreen tablet devices, tablet computers, and laptop computers. In someexamples, one or more of the platforms need not have access to awireless (e.g., radio) communication connection, but can have access toa computer network using a wired connection, such as an Ethernet, DSL,or cable modem connection.

The cellphone 210 can receive global positioning data signals from oneor more satellites (not shown). Other data for determining the locationof the cellphone 210 can also be received or determined from one or morecell phone towers 215, a Wi-Fi access point, or a Bluetooth beacon. Thislocation data can include, for example, a Service Set Identifier (SSID),Media Access Control (MAC) address, Bluetooth Device Address, or otherdata that can be used to determine location data for a Wi-Fi orBluetooth access point.

The cellphone 210 can also acquire media data, such as photographs(e.g., an image 211), video, or audio recording using, e.g., a cameracoupled to the smartphone, and submit the captured image to an onlineapplication (e.g., an online social networking application). The mediadata can be automatically uploaded to a social networking applicationand automatically shared with third-party users.

The cellphone 210 can also communicate with one or more servers locatedin a computing cloud 240 using a suitable communication network (e.g., aGSM data network employing a cell phone tower 215). The computing cloud240 can store and read data by accessing, e.g., media content or data,media data, application data. The computing cloud 240 can communicatewith one or more social networking sites 250. Examples of suitablesocial networking sites for implementing aspects of the disclosedtechnology include commercial sites such as Windows Live, MySpace, andFacebook.

The example computing environment 200 also shows a second user 225carrying a smartphone 220 (an example of a wireless communicationdevice). In some examples, other platforms can be used, including butnot limited to, mobile phones, smartphones, PDAs, handheld devices,handheld computers, PDAs, touch screen tablet devices, tablet computers,and laptop computers. In some examples, one or more of the platformsneed not have access to a wireless (e.g., radio) communicationconnection, but can have access to a computer network using a wiredconnection, such as an Ethernet, DSL, or cable modem connection. Thesmart phone 220 can include additional functions besides voice, e-mail,instant messaging, and text (SMS) messaging. For example, applicationsexecuting using the smart phone 220 can include photo and video capture,audio recording, speech recognition, office productivity applications,and slideshow applications.

The smartphone 220 is shown playing back media data using a slideshowapplication on a display mechanically coupled to the smartphone 220. Asshown, media content 1, 2, 3, 4, and 5 are included on a playlist 10 forplayback on a display 221 of the smartphone 220. The playlist caninclude content that is locally stored after being downloaded, contentthat is dynamically streamed while the playlist is sequencing, or acombination of both stored and streamed. The smartphone is depicteddisplaying a digital photograph 224 (an example of a still image) from amedia data file 2. The media data files 1, 2, 3, 4, and 5 form asequence 10 of image content, and include still image content 1, 2, 4, 5and video content 3. In some examples, the smartphone 220 can displayimages on a display 227 coupled to the smartphone using a wiredconnection (e.g., an HDMI or VGA cable) or a wireless connection (e.g.,an 802.11g connection or other suitable wireless connection).

The smartphone 220 can be configured to invoke the slideshow applicationautomatically. For example, the smartphone 220 can automatically invokethe slideshow application after being connected to charging device, forexample a DC power charger 230, which is plugged into a wall outlet 233.The power charger 230 need not have a physical cable, as in the case ofinductive chargers. In other examples, the smartphone 220 canautomatically invoke the slideshow application after being connected toa personal computer or other device, which act as charging devices,using power connections within a cable, such as a USB cable. In otherexamples, the smartphone 220 can automatically invoke the slideshowapplication after a pre-determined period of idle time.

In some examples, the smartphone 220 can also detect ambient light in anarea of proximity to the smartphone and invoke the slideshow applicationbased on the ambient light exceeding a pre-determined level, or stop aslideshow application based on the ambient light falling below apre-determined level. In this manner, the smartphone 220 can display aslideshow while people in the room are likely to be awake (e.g., whenroom lights are on) and turn off the slideshow when people in the roomare likely to be asleep (e.g., when room lights are off).

As shown, the computing environment 200 can include one or more mediadata providers 270 that upload media data from sources such as videocameras 275 and digital cameras 276 that can be hosted on the socialnetworking site 250 and/or other websites 270. The uploaded media datacan be downloaded from websites 270 and the social networking site bywireless communication device users 205 and 225 using the cell phone 210and smartphone 220, respectively.

The social networking site 250 offers its members the ability tocommunicate and interact with other members of the social network.Members have accounts created on the social networking site 250 andprovide authentication information to the site (e.g., a user ID andpassword, answers to challenge questions, or biometric data, such as afingerprint) in order to establish their identity as a particularmember. Members can join the social network and then add connections toa number of other members that they desire to be connected. Connectionsto groups and other members can be added by a member, for example, bythe member sending an invitation request to another member, which whenaccepted allows the two members to become associated as “friends.”Connections, such as friend connections, can also be automaticallycreated by the social network based on common characteristics of themembers or by members associating themselves with social networks orgroups (e.g., members who are alumni of a particular university or whoare fans of a particular sports team). As used herein, the term “friend”refers to any other member to whom a member has formed a connection,association, or relationship via the website. The connection betweenmembers may be a direct connection. However, in some examples, differentdegrees of connection are recognized by the social networking site 250.For example, “friends” and “friends of friends” (e.g., friends of amember's friends) represent two different degrees of connectivity. Also,the term “friend” does not necessarily require that members actually befriends in real life, but simply implies a connection in the socialnetwork. Privacy rights can be respected when using content for theslideshow. For example, content in the slideshow can be limited tocontent obtained from members that are associated as friends.

Such social networks can be implemented using various types of systems.Functionality provided by such social networks include allowing membersto communicate with each other, form connections with each other, storeinformation, and share information of interest, such as media dataand/or references to media data. In some examples, a social network caninclude a website that provides access to members via computing devicesusing a web-based interface. In other examples, other protocols betweenmember client devices and server applications can be used. In someexamples, a social network can be implemented as a peer-to-peer systemthat allows members to communicate and perform other functions. One suchexample is a peer-to-peer network of smart phones communicating viaShort Message Service (SMS) over a cellular network. In some examples, asocial network can be implemented as one or more servers located in acomputing cloud. The exemplary social networks described below can beadapted to various other implementations of social networking systems.

III. Example Social Networking Site

FIG. 3 is a block diagram 300 that illustrates an exemplary socialnetworking site 250. As show, the social networking site 250 includesseveral components, including a message server 310, a web server 320, asharing module 330, and an action logging module 340. As will beunderstood to one of ordinary skill in the art, the components 310, 320,330, and 340 can be implemented on a single compute server, or onseparate computer servers. The message server 310 can send and receivemessages in various formats, including, for example, e-mail messages,text (SMS) messages, instant messages (IM), and voice messages. The webserver 320 links the social networking site 250 to wirelesscommunication devices 210 and 220 using a network connection, forexample, an Internet connection. The web server 320 serves web pages, aswell as other web-related content, for example, Java, Flash, and XML.The web server 320 can include other functionality for sending andreceiving messages between the social networking site 250 and thewireless communication devices 210 and 220 as well as media dataproviders. The messages can include instant messages, e-mail, textmessages, and http messages.

The sharing module 330 allows sharing of content from external websiteand/or media content providers 270 with members of the social networkingsite 250. The sharing module 330 can receive requests for content, suchas media content, retrieve the content from external websites or mediacontent providers 270, and transmit the content to the a cellphone 210or smartphone 220 using wireless networks 215 and 216 coupled to thosedevices.

The action logging module 340 can receive messages from the web server320 about member action on and off the social networking site 250. Theaction logging module 340 can record this history data, which can beused to determine relevant media content for playback using, forexample, a slideshow application executing on a smartphone 220.

The social networking site 250 can also include data stores, forexample, computer databases 350, 360, 370, and 380 for storing contentand other information for performing various techniques disclosedherein. Member profile store 350 stores information about members, suchas name, birthdate, location, as well as authentication information, forexample, user ID and password information.

Media content store 360 stores media content, such as still images(e.g., photographs), video, and audio. The still images can be stored inany suitable format, including JPEG, GIF, BMP, RAW, or other suitableformat. The video images can be stored in any suitable video format,including AVI, MPEG-2, MPEG-4, H.264, or VC-1. Audio data can be storedin any suitable audio format, for example, WAV, MP3, OGG, AAC, or WMAformats. In some examples, audio and video data is combined in a singleformat. Media data stores in the media content store 360 can betransmitted to external websites 270, to the cellphone 210, thesmartphone 220, or other suitable media device for playback. Playback bycellphone 210 and smartphone 220 can include playback using anautomatically-invoked slideshow application, as discussed herein.

Application data store 370 stores source code and executablecomputer-readable instructions for implementing applications inaccordance with the disclosed technology. In some examples, executablecode can be downloaded by a wireless communication device (e.g.,cellphone 210 or smartphone 220) for execution locally on the device. Inother examples, web-based applications are implemented using portions ofHTML, DHTML, AJAX, or other suitable computer-readable instructions incombination with a web server located at the social networking site 250or external website 270.

IV. Example Slideshow Applications

FIG. 4A is an illustration of a mobile device 400 executing 401 aslideshow application displaying a photographic still image and a mobiledevice 405 executing 406 a slideshow application displaying a videoimage as a user rotates the mobile devices. As shown, the mobile device400 starts displaying a still image 410 while the device is in aportrait orientation. The mobile device 400 is then rotated 90°counter-clockwise to a landscape orientation, after which the image 411is rotated accordingly, such that the image is displayed at the sameorientation to the user. Rotating the mobile device 400 another 90°counter-clockwise places the device in a portrait orientation, afterwhich the image 412 is rotated accordingly in order to maintain the samedisplay orientation relative to the user. Next, the device is rotatedanother 90° counter-clockwise and the image 413 is again rotatedaccordingly. Finally, the device is rotated another 90°counter-clockwise and the image 410 is again rotated accordingly to theoriginal orientation in order to maintain the same display orientationrelative to the user.

FIG. 4A also shows a mobile device 405 executing 406 a slideshowapplication displaying a video image as a user rotates the mobiledevices. As shown, the mobile device 405 starts displaying a video image420 while the device is in a portrait orientation. In contrast to thestill image display, video images are displayed at an orientation suchthat the images are displayed in a landscape orientation regardless ofdevice orientation. After the mobile device 405 is rotated 90° clockwiseto a landscape orientation, the video image 421 is not rotated relativeto the user, remaining in a landscape orientation relative to thedevice. Rotating the mobile device 401 another 90° clockwise places thedevice in a portrait orientation (which is 180° opposite the startingposition), after which the video 422 is rotated accordingly in order tomaintain the same display orientation relative to the user. Next, thedevice is rotated another 90° counter-clockwise and the image 423 isagain rotated accordingly to maintain landscape orientation, but 180°opposite the orientation shown as video image 421. Finally, the deviceis rotated another 90° counter-clockwise and the image 420 is againrotated accordingly to the original orientation.

The rotation of the mobile devices 401 and 406 can be determined usingan accelerometer 146 and/or gyroscope 148. As will be readily understoodto one of ordinary skill in the art, the rotations of the mobile devices401 and 406 need not occur in the order described. Instead, the mobiledevices 401 and 406 will maintain relative orientation of the displayedimages or video accordingly based on the current orientation of thedevice.

FIG. 4B is an illustration 430 of an example slideshow applicationdisplaying a sequence 10 of still images 1, 2, 4, 5, and a video image3, including a transition effect. As shown, the sequence 10 of images isdisplayed starting with image 1 and ending with image 5. Specifically, atimeline 445 indicates several periods of time relevant for atransition, including T_transition, T_motion, and T_total for atransition from image 4 to image 5. Prior to the start of T_transition,image 4 is displayed 440 with 0% transparency and without other imagessuperimposed. During the T_transition period, the transparency of image4 is gradually increased from 0% to 100%. As shown, image 5 issuperimposed over image 4, and the transparency of image 5 isconcurrently decreased from 100% to 0%. As shown at 441, each image 4and 5 is at 50% transparency. After the slideshow has fullytransitioned, image 5 is displayed at 0% transparency as shown. Duringthe T_motion period, an additional motion effect is applied to thedisplayed image(s). For example, the display of the image can be pannedand/or zoomed, thus adding a motion effect.

For the display of video images, such as video image 3, varioustechniques can be used to display the video image. In some examples, aselected image of series of images from the video image can bedisplayed. For example, the first frame, last frame, and/or both framesof video can be displayed during the T_transition and/or T_motionperiods. In some examples, a selected frame (e.g., a frame selected by acreator or owner of the video image) can be displayed. In some examples,at least a portion of frames of the video image 3 can be played back.

In some examples of slideshow applications, audio playback can accompanyplayback of still images or video images. In some examples, the audioplayback can be randomly selected from local and/or remote sources. Insome examples, the audio playback is from media data selected used oneor more of the techniques disclosed herein. For example, if a slideshowapplication is playing back media data associated with one of the user'sfriends, then additional media data associated with the user's friendcan be played back during the slideshow. In other examples, locallystored media data can be combined with remotely stored media data duringa slideshow. The slideshow application can also analyze the orientationof the mobile device and play both video and photos in a landscapeorientation and only photo content in a portrait orientation.

V. Example Invocation of Slideshow Application Requesting Media Data

FIG. 5 is a flow chart 500 that outlines an exemplary method invoking aslideshow application, including receiving data for automaticallyinvoking a slideshow, transmitting a request for media data, receivingmedia data based on the request, and invoking a slideshow displaying themedia data, as can be used in certain embodiments of the disclosedtechnology.

At process block 510, first data is received for automatically invokinga slideshow application. In some examples, the first data is receivedbased on a mobile device being connected to a charging device, such as aUSB cable or docking station connected to a second device (e.g., apersonal computer or other device suitable for deliver power through aUSB cable) or a dedicated charger or docking station that provides powersuitable for input to a power supply 182 of a mobile device (e.g.,converting 120V AC or 12 V DC power to a suitable DC voltage forproviding to the power supply). In some examples, the first data isreceived based on additional or other considerations, for example,context data, such as the current time, amount of ambient light, or dataassociated with a user calendar or other time-based schedule. Otherfeatures of the slideshow can be modified based on the context orenvironment (e.g., time-based decision making, calendar-based decisionmaking, etc.) in which the slideshow is invoked. For example, if theslideshow was invoked after going into a sleep mode (due to lack ofactivity) and it is late at night, then volume can be muted or contentcan be analyzed to ensure that audio tracks are not played, based on anassumption that a user could be sleeping. Other algorithms can also beused for dynamically creating a slideshow that are calendar based. Forexample, for holidays (e.g., Halloween, Christmas, etc.), the algorithmfor creating the slideshow can be changed, such as by collecting contentwithin a predetermined time period before and/or after the holiday.

At process block 520, a request for media data is transmitted using, forexample, a wireless modem 160, an I/O port 180, and/or a physicalconnector 190 (e.g., using a USB cable connected at process block 510).In some examples, the request is transmitted to a server located nearbya mobile device, while in other examples, the request is transmitted toa server located in a computing cloud 240. The request can includeinformation describing media such as a list of desired filename(s),media genres, URLs, and can additionally include additional informationdescribing user media preferences, time of data, or other data that canbe used to process a media data request. In addition, data associatedwith members of a social network that are associated with a mobiledevice user can be included or referenced by the request.

At process block 530, media data is received, the media data beingselected based on the transmitted request. For example, media dataassociated with a filename, keyword, or URL can be received.

At process block 540, a slideshow application is invoked, and at least aportion of the received media data is displayed. For example, if thereceived media data includes a series of photographs, the photographscan be displayed sequentially on a display. The slideshow can displaymedia data stored locally or can display media data being streameddynamically or a combination of both. Additionally, if a conditionchanges, such as conditions that invoked the slideshow change, theslideshow can automatically terminate. For example, if a cable isdisconnected, the slideshow can terminate.

VI. Example of Invoking Slideshow Application

FIG. 6 is a flow chart 600 that further details the exemplary methodshown in FIG. 5. At process block 610, a device, such as a mobiledevice, is an active state. When the device is in an active state, itcan be performing functions such as sending/receiving voice data,sending/receiving IM, SMS, or other data, booting, or executing anapplication.

At process block 615, a check is performed to determine whether thedevice has entered an idle state. As readily understood by one ofordinary skill in the art, idle states can include some limitedfunctionality, such as polling a communication network, but do notinclude other functionality designated as active, as described aboveregarding process block 610. If the device is not idle, the methodproceeds back to process block 610 to perform the active function(s). Ifthe device is determined to be idle, the method proceeds to processblock 620.

At process block 620, locally-stored media data is added to a playlistfor later playback by an application, e.g., locally-stored image data isadded to a playlist for a slideshow application. The media data that isadded can be selected based at least in part on context data, such asthe time of day, user preferences, or previous user selections.

At process block 630, a check is made to determine whether a chargerand/or data cable is connected to the device power supply. As discussedabove regarding FIG. 2, suitable chargers can include dedicated chargers(with or without physical cables) or USB cables that act as chargers. Ifit is determined that a suitable charging device is not connected to thedevice power supply, then the method proceeds to process block 660. Ifit is determined that a charger or data cable is connected, then themethod proceeds to process block 640.

At process block 640, a check is made to determine whether the devicehas been authenticated with an online media data provider. Suchauthentication can be determined using, for example, a user identifierand password, biometric, or geospatial location information. As will beunderstood by one of ordinary skill in the art, various techniques forencoding and transmitting authentication information, such as webbrowser cookies, basic web authentication, certificates, or othersuitable forms of encoding and transmission, can be employed. If thedevice has not been authenticated, then the method proceeds to processblock 670. If the device has been authenticated, then the methodproceeds to process block 645.

At process block 645, remotely-stored data is downloaded and added tothe playlist created at process block 620. The data stored can includemedia data, such as images, video, and/or audio data, as well asreferences to remote locations where data is stored for subsequentdownloaded when the media data is to be played back. The references canbe encoded as network addresses, such as URLs, ftp addresses, databaseindexes, friend connection references, groups, or other suitablereference for identifying media data content. In examples where noplaylist is created at 620, a new playlist is created for theremotely-stored data.

At process block 650, the method checks to determine whether friends ofthe mobile device user have media content available. This check can bebased not just on available friend content, but can also take intoconsideration dates associated with the friend media data, the frequencywith which a friend's content has been previously accessed, or otherdata available to the social network site. If media data associated withone or more friends (“friend media data”) is available, then the methodproceeds to process block 655. Otherwise, if there is no friend mediadata available, the method proceeds to process block 670 to invokeplayback.

At process block 655, friend media data is downloaded and added to theplaylist created at process block 620. The data stored can include mediadata, such as images, video, and/or audio data, as well as references toremote locations where data is stored for subsequent downloaded when themedia data is to be played back. The references can be encoded asnetwork addresses, such as URLs, ftp addresses, database indexes, friendconnection references, groups, or other suitable references foridentifying media data content. In examples where no playlist is createdat 620, a new playlist is created for the remotely-stored data.

At process block 670 at least one slideshow application is invoked todisplay at least a portion of the media content on the playlist. Theinvocation can include execution of locally-stored computer-readableinstructions, the execution of remotely-stored computer-readableinstructions (e.g., execution of instructions at a server in a computingcloud), or some combination of the two. In some examples, the slideshowapplication is integrated with other applications, for example, webbrowsers, video games, word processing, or other suitable applications.In some examples, other functions of a mobile device area disabled, suchas turning off an LCD display backlight, in order to allow a brighterdisplay during slideshow playback.

At process block 675, the invoked slideshow application(s) playbackselected media data from the playlist. In some examples, the slideshowapplication can display a series of images from the playlist that weredownloaded. In other examples, the slideshow application can displayimages that are dynamically streamed. In yet other examples, theslideshow application can intermix downloaded and dynamically streamedcontent. The images can be displayed using one or more displays (e.g.,LCD displays coupled to a mobile device). For example, a series ofdigital images (stored using, e.g., JPEG, GIF, TIFF, or other suitableimage formats) can be displayed sequentially on a display, each imagebeing displayed for a pre-determined period of time (e.g., 30 seconds)before transitioning to the next image in the sequence. In someexamples, additional transitional animations can be combined with theimages to improve the aesthetics of the slideshow.

In some examples, the orientation of the display is considered duringplayback. For example, and as discussed above regarding FIG. 4A, thedisplay of still images and video images can be rotated based on thecurrent orientation of the display. In other examples, media content canbe skipped based on the orientation of the display. For example,playback of video media data can be skipped when the display is in aportrait orientation.

At process block 680, the method determines whether one or moretermination criteria have been met. For example, the terminationcriteria could include a time period for slideshow playback, reaching apredetermined time of day, playback of the media data a certain numberof times, receiving a command to cease playback, receiving inputrequesting use of device functionality, battery charge level, or othersuitable criteria. If the termination criteria have not been met, themethod proceeds back to process block 675 to resume slideshow playback.If the termination criteria have been met, then the method proceeds toprocess block 690.

At process block 690, the media data playback by the slideshowapplication(s) is paused or stopped. In some examples, if the playbackwas interrupted based on receiving input data requesting a devicefunction, the requested function can be automatically invoked. In someexamples, the slideshow application is paused or stopped based onreceiving a press of a hardware button or a button on a touch screendisplay. In some examples, the slideshow application is paused orstopped based on receiving an interrupt from another application, e.g.,an incoming voice call or a reminder from a calendar application. Inother examples, disconnecting a cable can automatically stop aslideshow.

VII. Example Invocation of a Slideshow Application Requesting Media Data

FIG. 7 is a flow chart 700 that outlines an exemplary method ofsubmitting a request to search data associating a mobile device userwith one or more third party users of an online application, receivingmedia data associated with at least one of the third party users, andinvoking a slideshow application displaying the received media data, ascan be used in certain embodiments of the disclosed technology.

At process block 710, a request is submitted to search data associatedwith a device user (e.g., the mobile device user invoking a slideshowapplication) with one or more third-party users of an onlineapplication. For example, the device user can be associated with one ormore third party users by a friend connection created on a socialnetworking site. In some examples, additional metadata associated withthe device user and the third-party user(s) can be used as search termsand/or included in the data that is searched. In some examples, dataassociated with the current time on the device, ambient light, calendardata, or other suitable data can be used as search terms or included inthe data that is searched. In some examples, the requested search can beperformed at one or more remote servers located in a computing cloud. Insome examples, all or a portion of the requested search is performedusing a local device.

As discussed further above regarding FIG. 3, at least one the searchterms and/or data to be searched can be stored in storage at a socialnetworking site 250, for example, in databases 350, 360, 370, and/or380.

At process block 720, media data is received, where the media data isselected based on the search performed at process block 710. Forexample, photographs or other still images recently posted by a thirdparty user having a friend connection to the mobile device user arereceived as a result of the search. In other examples, video and/oraudio data can be received. In some examples, the media data receivedincludes an address, such as a URL, that describes one or more networklocations from which to download the selected media data. In otherexamples, the selected media data is received directly as a result ofthe search at process block 720. After at least a portion of the mediadata is received, the method can proceed to process block 730. In someexamples, the method waits until the selected media data has beencompletely received, while in other examples, the selected media datacan be received concurrent with the playback at process block 730.

At process block 730, a slideshow application is invoked to display atleast a portion of the received media data. As discussed herein, theslideshow is not necessarily limited to still images, but can includeplayback of video, audio, or other suitable media data. The slideshowcan include transition or motion effects, and automatic rotation of thedisplayed media, as discussed at FIGS. 4A, 4B, and accompanying text.Further, the slideshow can begin before all of the media data has beenreceived.

VIII. Example of Invoking Slideshow Application

FIG. 8 is a flow chart 800 that further details the exemplary methodshown in FIG. 6. At process block 810, a check is made to determine ifslideshow preconditions have been met before invoking the slideshowapplication. For example, device or user settings can be checked todetermine whether the slideshow application is enabled. As anotherexample, the state of the device, such as the time elapsed since lastreceiving user input or other application activity, such as running anactive application or receiving a voice call or text message, can alsobe used as slideshow preconditions.

At process block 815, a check is made to determine whether a chargingdevice is connected to the mobile device. Detection of a charging device(e.g., using a power or USB cable) is explained in more detail above. Ifa charging device is not detected as connected to the mobile device, themethod proceeds to process block 820. If a charging device is detected,then the method proceeds to process block 830.

At process block 820, user input is received to invoke a slideshowapplication. For example, the user input can be received as touches on atouch screen display, hardware buttons, or voice command input. In someexamples, movement of the device can be received as the user input; forexample, by rapidly shaking the device, moving the device to aparticular position or orientation, or moving the device to a particulargeospatial location. In some examples, the absence of user input istreated as user input to invoke a slideshow application, for example, bynot moving the device or not providing user input for a predeterminedduration of time.

At process block 824, one or more user selections are received forsearch terms for media data to be played back. For example, the userselection can be a selection of a directory of images, a playlist, orkeywords used to select media data. In some examples, all availablemedia data can be selected. In some examples, the user selection can becoupled with other data, for example, context data for a mobile devicerepresenting current time, calendar data, the amount of ambient light,or other suitable context data.

At process block 828, media data are received based on the userselections received at process block 824. The media data can be receivedfrom local storage coupled to a mobile device, from remote storageassociated with a remote server, or a combination of local and remotestorage. In some examples, the remote server is located in a computingcloud and accessed using the Internet. After receiving at least aportion of the media data, the method proceeds to process block 840 tobegin media playback. As discussed above regarding FIG. 7, mediaplayback can begin before all of the selected media data has beenreceived.

At process block 840, media playback begins, displaying at least aportion of the selected media data using a slideshow application. Asdiscussed above, in some examples the media data is not limited to stillimages, but can include video and/or audio data as well.

If instead at process block 815, a charging device is detected, themethod proceeds to process block 830. At process block 830, user historydata is searched to determine media data that may be more relevant ordesirable to the mobile device user. For example, user history data caninclude data based on previous communication between a mobile deviceuser and other third-party users (e.g., friends connected to the user ona social network) or previously-received text messages, e-mails, orvoice calls between the user and other parties. In some examples, all ora portion of the user history data is locally stored, while in otherexamples, all or a portion of the user history data is stored remotely,for example, at a server in a computing cloud.

At process block 834, a request is sent based on the user history datasearched at process block 830 to social network site. In some examples,the user history data can include detailed data on user preferences,friend connections, and previous communications. In other examples, theuser history data includes identifying information that can be used toidentify the user at a remote server, and can be used to supplement orreplace the user history data search performed at process block 830.

At process block 838, media data is received that has been selectedbased at least in part on the user history data search performed atprocess blocks 830 and/or 834. Similar to the techniques described atprocess blocks 828 or 645, the media data can include media data forplayback, or references (e.g., network addresses) for media data to beretrieved locally and/or remotely. After receiving at least a portion ofthe media data, the method proceeds to process block 840 to begin mediaplayback. As discussed above regarding FIG. 7, media playback can beginbefore all of the selected media data has been received.

After media playback begins at process block 840, the method proceeds toprocess block 850, where one or more tags, such as privacy tags ordigital rights management (DRM) tags associated with the selected mediadata, are checked to determine if playback of some of the media datashould be skipped. For example, media data can be tagged when uploadedto indicate a privacy or access list that should be allowed to view themedia. Checking privacy tags before playback of media data may bedesirable because the user may be less attentive during slideshowplayback than during more active applications, and therefore more likelyto be embarrassed by unflattering content. Furthermore, there may beother people able to view the slideshow that the user might not want toview media data with a privacy tag. For example, media data includingphotographs from a birthday party for a twenty-one year old might beless desirable to play back in an automatic slideshow than a birthdayparty for a five year old, especially if relatives or co-workers mightview the slideshow.

For DRM tags, suitable authentication is performed to determine whetherthe user has permissions to playback the selected media data. Forexample, a user id and/or password can be used to authorize access tothe selected media data. In other examples, an electronic DRMcertificate issued to the user by a trusted authority and stored on themobile device, or in a computing cloud, can be used. DRM permissions donot necessarily authorize all-or-nothing access, but can, for example,allow users to playback, but not record media data, or allow users toplayback downloaded media data for a limited period of time.

If a tag is detected that indicates that a portion of the media datashould not be played back, that portion of the media data is skipped andthe method proceeds to process block 840. Otherwise, the method proceedsto process block 860. In some examples, the check for the privacy tagand/or DRM tags can be combined with an optional mode for the mobiledevice. For example, a slideshow application can have a photo frame modeand an interactive mode, where media data with a privacy tag or DRM tagis played back in interactive mode but not photo frame mode. In someexamples, the determination of photo frame mode or interactive mode isdetermined based on how the slideshow application was invoked. Forexample, if the slideshow was invoked at process block 820, then theslideshow is determined to be in interactive mode, and additionalcontent is available even if some of the media data has a privacy tag.If instead the slideshow was invoked at process block 830, then theslideshow is determined to be in photo frame mode, and the additionalcontent with a privacy tag is not played back during the slideshow.

At process block 860, playback of the selected portions of media datathat meet privacy tag requirements begins. As discussed above, this caninclude the sequential playback of images, video, and/or audio data. Insome examples, the audio can be selected independently of images orvideo for playback concurrently while the images or video are beingdisplayed. As the media data is played back, the method proceeds toprocess block 870.

At process block 870, a check is performed to determine if an interrupthas been received for stopping slideshow playback. An interrupt can bereceived based on: receiving user input on a mobile device, exceeding atime limit, performing playback of the media data a predetermined numberof times, connecting or disconnecting a charging device, or othersuitable condition. If a slideshow interrupt has not been received, themethod proceeds to process block 860. If suitable conditions have beenreceived for interrupting slideshow playback, the method proceeds toprocess block 880.

At process block 880, playback of media data using the slideshowapplication is stopped. In some examples, the slideshow can be resumed.In some examples, the slideshow application is exited and the method isterminated.

As will be readily understood to one of ordinary skill in the art, someor all of the acts performed at the process blocks described can beomitted, skipped, or reordered. For example, receiving user input toinvoke the slideshow at process block 820, or user selection of searchterms at process block 824, can be omitted in some examples. In someexamples, the privacy tag check at process block can be performed beforebeginning slideshow playback at process block 840, or before receivingmedia data at process block 838.

IX. Exemplary Selection of Relevant Media Data

FIG. 9 is a flow chart 900 that outlines an exemplary method invoking aslideshow application, including receiving media data and associatedmetadata, receiving a request to transmit slideshow media data to aremote device, and selecting and transmitted selected media data to theremote device.

At process block 910, media data for playback using a slideshow isreceived from a first user. For example, the first user can be a memberof a social network service and the slideshow media data can be stillimages such as photographs or other images. In some examples, the mediadata can include video and/or audio data. The media data can be storedin a database, for example, media content storage 360. In some examples,one or more references to locations of media data for playback arereceived instead of the media data itself.

In some examples, the media data for playback is recorded and uploadedby the first user automatically. For example, a user of a smartphoneincluding an image capture feature or a video recording can configurethe device to automatically upload photographs to, e.g., a socialnetwork site. Thus, the media data for playback is receivedautomatically from the first user.

At process block 920, metadata is received that is associated with themedia data received at process block 910. For example, the metadata caninclude data associating the media data with keywords describing thecontent of the data (e.g., “cooking,” “birthday party,” “beach,” or“Seattle,”), geospatial location data (e.g., GPS coordinate describingwhere a photograph was capture or an area that the media data isparticularly relevant to), or social network media data (e.g., metadatadescribing the media data as relevant to particular friends or groups ofa social networking application). The metadata can be stored using,e.g., a database such as application data storage 370 or memberconnection storage 380 as part of a social networking site 250.

In some examples where media data is automatically received, themetadata can also be received from the same first user. For example, thefirst user might include a keyword describing the media content whencreating or uploading the media data. In some examples, metadata can becreated based on the geospatial location where the image(s) werecaptured. In some examples, metadata can be created based on time dataor calendar data. For example, if a calendar indicates that the user isat a technical conference, the name of the conference can be added tothe metadata. Thus, calendar entry data, including calendar appointmentdata, can be used as the metadata.

At process block 930, a request is received to transmit slideshow mediadata to a remote device associated with a second user. In some examples,the second user is not the same user as the first user discussedregarding process block 910. In some examples the request simplyincludes identification for the first user or the second user. In otherexamples, the request includes more detailed data, such as user historydata or other data associating the first user and the second user.

At process block 940, media data is selected based on the requestreceived at 930. The request data can be used to compare metadataassociated with the slideshow media data, as well as other datadescribing relationships between the first user and the second user. Forexample, if the first user and second users are friends on a socialnetwork site, then the metadata may be designated as more highlyrelevant to the second user. As another example, if the second userappears in the first user's history data, the metadata may be designatedas more highly relevant. Media data can then be determined as more orless relevant to the second user based on such comparison, and the morerelevant media data thus can be selected based on the metadata and therequest data.

At process block 950, the relevant media data is transmitted to theremote device. In some examples, a reference to the media data (e.g., anetwork address such as a URL) is transmitted, and the media data can belocated and downloaded based on that reference. In other examples, thecontents of the media data are transmitted to the remote device.

X. Example Computing Environment

FIG. 10 illustrates a generalized example of a suitable computingenvironment 1000 in which described embodiments, techniques, andtechnologies may be implemented. For example, the computing environment1000 can implement functionality for generating and transmitting contextdata, application metadata, and network addresses andcomputer-executable instructions for applications, as described herein.

The computing environment 1000 is not intended to suggest any limitationas to scope of use or functionality of the technology, as the technologymay be implemented in diverse general-purpose or special-purposecomputing environments. For example, the disclosed technology may beimplemented with other computer system configurations, including handheld devices, multiprocessor systems, microprocessor-based orprogrammable consumer electronics, network PCs, minicomputers, mainframecomputers, and the like. The disclosed technology may also be practicedin distributed computing environments where tasks are performed byremote processing devices that are linked through a communicationsnetwork. In a distributed computing environment, program modules orinstructions may be located in both local and remote memory storagedevices.

With reference to FIG. 10, the computing environment 1000 includes atleast one central processing unit 1010 and memory 1020. In FIG. 10, thismost basic configuration 1030 is included within a dashed line. Thecentral processing unit 1010 executes computer-executable instructionsand may be a real or a virtual processor. In a multi-processing system,multiple processing units execute computer-executable instructions toincrease processing power and as such, multiple processors can berunning simultaneously. The memory 1020 may be volatile memory (e.g.,registers, cache, RAM), non-volatile memory (e.g., ROM, EEPROM, flashmemory, etc.), or some combination of the two. The memory 1020 storessoftware 1080 that can, for example, implement the technologiesdescribed herein. A computing environment may have additional features.For example, the computing environment 1000 includes storage 1040, oneor more input devices 1050, one or more output devices 1060, one or morecommunication connections 1070, and one or more touch screens 1090. Aninterconnection mechanism (not shown) such as a bus, a controller, or anetwork, interconnects the components of the computing environment 1000.Typically, operating system software (not shown) provides an operatingenvironment for other software executing in the computing environment1000, and coordinates activities of the components of the computingenvironment 1000.

The storage 1040 may be removable or non-removable, and includesmagnetic disks, magnetic tapes or cassettes, flash memory, CD-ROMs,CD-RWs, DVDs, or any other non-transitory storage medium which can beused to store information, such as locally-stored media data, and thatcan be accessed within the computing environment 1000. The storage 1040stores instructions for the software 1080, which can implementtechnologies described herein. Additional software 1085 for selectingapplications using data, including media data, can be located in acomputing cloud 1087.

The input device(s) 1050 may be a touch input device, such as akeyboard, keypad, mouse, pen, or trackball, a voice input device, ascanning device, ambient light source, image-capture device, or anotherdevice, that provides input to the computing environment 1000. Foraudio, the input device(s) 1050 may be a sound card or similar devicethat accepts audio input in analog or digital form, or a CD-ROM readerthat provides audio samples to the computing environment 1000. Theoutput device(s) 1060 may be a display, printer, speaker, CD-writer, oranother device that provides output from the computing environment 1000.The touch screen 1090 can act as an input device (e.g., by receivingtouch screen input) and as an output device (e.g., by displaying a listof downloaded applications to notify a user).

The communication connection(s) 1070 enable communication over acommunication medium (e.g., a connecting network) to another computingentity. The communication medium conveys information such ascomputer-executable instructions, compressed graphics information, orother data in a modulated data signal.

Computer-readable media are any available media that can be accessedwithin a computing environment 1000. By way of example, and notlimitation, with the computing environment 1000, computer-readable mediainclude memory 1020 and/or storage 1040. As should be readilyunderstood, the term computer-readable storage media includesnon-transitory storage media for data storage such as memory 1020 andstorage 1040, and not transmission media such as modulated data signals.

XI. Example Implementation Environment

FIG. 11 illustrates a generalized example of a suitable implementationenvironment 1100 in which described embodiments, techniques, andtechnologies can be implemented.

In example environment 1100, various types of services (e.g., computingservices) are provided by a computing cloud 1110. For example, thecomputing cloud 1110 can comprise a collection of computing devices,which can be located centrally or distributed, that provide cloud-basedservices to various types of users and devices connected via a networksuch as the Internet. The implementation environment 1100 can be used indifferent ways to accomplish computing tasks. For example, some tasks(e.g., processing user input and presenting a user interface) can beperformed on local computing devices (e.g., connected devices 1130,1140, and 1150) while other tasks (e.g., storage of data to be used insubsequent processing) can be performed in the cloud 1110.

In example environment 1100, the cloud 1110 provides services forconnected devices 1130, 1140, and 1150 with a variety of screencapabilities. Connected device 1130 represents a device with a computerscreen 1135 (e.g., a mid-size screen). For example, connected device1130 could be a personal computer such as desktop computer, laptop,notebook, netbook, or the like. Connected device 1140 represents adevice with a wireless communication device screen 1145 (e.g., a smallsize screen). For example, connected device 1140 could be a mobilephone, smartphone, personal digital assistant, tablet computer, and thelike. Connected device 1150 represents a device with a large screen1155. For example, connected device 1150 could be a television screen(e.g., a smart television) or another device connected to a television(e.g., a set-top box or gaming console) or the like. One or more of theconnected devices 1130, 1140, or 1150 can include touch screencapabilities. Touchscreens can accept input in different ways. Forexample, capacitive touchscreens detect touch input when an object(e.g., a fingertip or stylus) distorts or interrupts an electricalcurrent running across the surface. As another example, touchscreens canuse optical sensors to detect touch input when beams from the opticalsensors are interrupted. Physical contact with the surface of the screenis not necessary for input to be detected by some touchscreens. Deviceswithout screen capabilities also can be used in example environment1100. For example, the cloud 1110 can provide services for one or morecomputers (e.g., server computers) without displays.

Services can be provided by the cloud 1110 through service providers1120, or through other providers of online services (not depicted). Forexample, cloud services can be customized to the screen size, displaycapability, and/or touch screen capability of a particular connecteddevice (e.g., connected devices 1130, 1140, and 1150).

In example environment 1100, the cloud 1110 provides the technologiesand solutions described herein to the various connected devices 1130,1140, and 1150 using, at least in part, the service providers 1120. Forexample, the service providers 1120 can provide a centralized solutionfor various cloud-based services. The service providers 1120 can manageservice subscriptions for users and/or devices (e.g., for the connecteddevices 1130, 1140, and 1150 and/or their respective users). Inaddition, data identifying one or more of the connected devices 1130,1140, and 1150 can be used as context data in order to select media datafor slideshow applications relevant for the respective connecteddevices.

The disclosed methods, apparatus, and systems should not be construed aslimiting in any way. Instead, the present disclosure is directed towardall novel and nonobvious features and aspects of the various disclosedembodiments, alone and in various combinations and subcombinations withone another. The disclosed methods, apparatus, and systems are notlimited to any specific aspect or feature or combination thereof, nor dothe disclosed embodiments require that any one or more specificadvantages be present or problems be solved. The techniques andsolutions described in this application can be used in variouscombinations to provide a better user experience with wirelesscommunication devices, including wireless communication devices such assmartphones.

Any of the methods described herein can be performed via one or morecomputer-readable media (e.g., storage or other tangible media)comprising (e.g., having or storing) computer-executable instructionsfor performing (e.g., causing a computing device to perform) suchmethods. Operation can be fully automatic, semi-automatic, or involvemanual intervention.

Having described and illustrated the principles of our innovations inthe detailed description and accompanying drawings, it will berecognized that the various embodiments can be modified in arrangementand detail without departing from such principles. It should beunderstood that the programs, processes, or methods described herein arenot related or limited to any particular type of computing environment,unless indicated otherwise. Various types of general purpose orspecialized computing environments may be used with or performoperations in accordance with the teachings described herein. Elementsof embodiments shown in software may be implemented in hardware and viceversa.

In view of the many possible embodiments to which the principles of thedisclosed invention may be applied, it should be recognized that theillustrated embodiments are only preferred examples of the invention andshould not be taken as limiting the scope of the invention. Rather, thescope of the invention is defined by the following claims. We thereforeclaim as our invention all that comes within the scope of these claims.

We claim:
 1. A method of performing a client-side slideshow applicationon a wireless communication device configured to have a private mode anda non-private mode, the method comprising: responsive to detecting thatthe wireless communication device is connected to a charging device:initiating a search of user history data to select media data relevantto a user of the wireless communication device, the user history dataincluding history data associated with a frequency with which the uservisits online content associated with at least one third-party user;transmitting a request for the selected media data via a computernetwork; receiving, via the computer network, the selected media data,the selected media data being selected based at least in part on thesearch of the user history data; and displaying at least a portion ofthe selected media data sequentially using the slideshow application onthe wireless communication device, wherein: when the wirelesscommunication device is in the non-private mode, then the displayingdoes not comprise displaying selected media data that does not have aprivacy tag designation, and when the wireless communication device isin the private mode, then the displaying comprises displaying at leastone selected media data that has a privacy tag designation.
 2. Themethod of claim 1, further comprising adding at least one image storedlocally on the wireless communication device to the selected media data,wherein the displaying comprises displaying at least one locally-storedimage and at least one image of the received selected media data.
 3. Amethod comprising: responsive to detecting that a wireless communicationdevice is connected to a charging device: initiating a search of userhistory data to select media data relevant to a user of the wirelesscommunication device; determining whether the wireless communicationdevice is authenticated with an online application; and based on thedetermining: when the wireless communication device is authenticatedwith the online application, receiving media data from the onlineapplication, when the wireless communication device is not authenticatedto the online application, receiving media data from local storagecoupled to the wireless communication device but not from the onlineapplication, and displaying at least a portion of the selected mediadata sequentially using a slideshow application on the wirelesscommunication device, wherein: when the wireless communication device isin a non-private mode, then the displaying does not comprise displayingselected media data that does not have a privacy tag designation, andwhen the wireless communication device is in a private mode, then thedisplaying comprises displaying at least one selected media data thathas a privacy tag designation.
 4. The method of claim 1, furthercomprising playing back local media data stored on the wirelesscommunication device.
 5. A method of performing a client-side slideshowapplication on a wireless communication device, comprising: based ondetecting that the wireless communication device is connected to acharging device, automatically invoking the slideshow application,wherein the slideshow application is operable to display a series ofimages using the wireless communication device; transmitting a requestfor images via a computer network, the request comprising user historydata; receiving, via the computer network, the series of images, whereinthe images in the series of images are selected based at least in parton the user history data transmitted with the request; adding at leastone image from the series of images to an image playlist; and checkingwhether the wireless communication device is connected to a chargingdevice, and based on the checking, displaying at least a portion of theimage playlist sequentially using the slideshow application on thewireless communication device, wherein: when a charging device isdetected to be connected to the wireless communication device, thedisplaying of the image playlist occurs more frequently than when thewireless communication device is detected not to be connected to thecharging device, and when a charging device is not detected connected tothe wireless communication device, the displaying of the image playlistoccurs less frequently than when the wireless communication device isdetected to be connected to the charging device.
 6. The method of claim1, wherein the slideshow application is operable to playback stillimages, video images, or photo and video images on a display coupled tothe wireless communication device.
 7. The method of claim 6, wherein thedisplay is not mechanically coupled to the wireless communicationdevice.
 8. The method of claim 1, wherein the detecting is based on atleast one of the following criteria: whether the wireless communicationdevice is connected to a charging device; whether the wirelesscommunication device is in an idle period for a predetermined period oftime; whether the wireless communication device has access to anon-empty set of media data; and whether the slideshow application hasbeen previously enabled by a user setting.
 9. The method of claim 1,further comprising playing back media data using the slideshowapplication based on an orientation of the wireless communicationdevice, wherein: when the orientation is determined to be a firstorientation, playing back at least one still image and at least onevideo image, and when the orientation is determined to be a secondorientation, playing back one or more still images but not playing backany video images.
 10. One or more computer-readable storage devices ormemory storing computer-readable instructions that when executed by acomputer, cause the computer to perform a method, the method comprising:based on detecting that a wireless communication device is connected toa charging device: automatically invoking a slideshow applicationoperable to display a series of images using the wireless communicationdevice, the slideshow application having an interactive mode and a photoframe mode; automatically transmitting a request for images via acomputer network, the request submitted to search data for one or morethird-party users having a friend connection to a user of the wirelesscommunication device an online application; receiving, via the computernetwork, a series of images, at least a portion of the received imagesbeing designated as private; based on the slideshow being in theinteractive mode, displaying at least one of the private images usingthe slideshow application on the wireless communication device; andbased on the slideshow being in the photo frame mode, displaying atleast one of the series of images, but not displaying any of the imagesdesignated as private.
 11. The method of claim 1, wherein the userhistory data includes data based on previous communication between auser of the wireless communication device and other third-party users ofa social network application.
 12. The method of claim 1, furthercomprising, based on the request, searching first data associated withthe wireless communication device, the first data including dataassociating a member of a social network with one or more of the otherthird-party users of the social network, producing search results,wherein the selected media data is selected based at least in part onthe search results.
 13. The computer-readable storage devices or memoryof claim 10, wherein the search data associates the device user with oneor more of the other third-party users by a friend connection created ona social networking site.
 14. The method of claim 1, wherein the historydata includes history data associated with sending or receiving messagesto or from the user and at least one of the other third-party users,wherein the messages include at least one or more of the following:voice calls, voice mails, instant messages, SMS messages, electronicmail, web browsing, or social networking.
 15. The computer-readablestorage devices or memory of claim 10, wherein the search data includeshistory data for communications to or from the user and at least one ofthe third-party users.
 16. The computer-readable storage devices ormemory of claim 10, wherein the search data includes history dataassociated with sending or receiving messages to or from the user and atleast one of the third-party users, wherein the messages include atleast one or more of the following: voice calls, voice mails, instantmessages, SMS messages, electronic mail, web browsing, or socialnetworking.
 17. The computer-readable storage devices or memory of claim10, wherein the search data includes history data associated with afrequency with which the user visits online content associated with atleast one of the third-party users.
 18. The computer-readable storagedevices or memory of claim 10, wherein the method further comprises:receiving calendar entry data associated with the user, wherein thecalendar entry data includes appointment data associated with the userand the at least one of the third-party users; and based on the receivedcalendar entry data, performing the acts of transmitting the request,and displaying the at least a portion of the series of images.
 19. Themethod of claim 1, further comprising: checking whether the wirelesscommunication device is connected to a charging device, and based on thechecking: when a charging device is detected connected to the wirelesscommunication device, then performing the displaying the at least aportion of the selected media more frequently than when the wirelesscommunication device is not connected to the charging device, and when acharging device is not detected connected to the wireless communicationdevice, then performing the displaying the at least a portion of theselected media less frequently than when the wireless communicationdevice is connected to the charging device.
 20. The method of claim 5,wherein: the wireless communication device is configured to have aprivate mode and a non-private mode, wherein: when the wirelesscommunication device is in the non-private mode, then the displaying ofthe image playlist does not comprise displaying selected media data thatdoes not have a privacy tag designation, and when the wirelesscommunication device is in the private mode, then the displaying of theimage playlist comprises displaying at least one selected media datathat has a privacy tag designation.
 21. The method of claim 1, wherein:the slideshow application is further configured to have an interactivemode and a photo frame mode; based on the slideshow being in theinteractive mode, the wireless communication device is put in thenon-private mode; based on the slideshow being in the photo frame mode;the wireless communication device is put in the private mode; and thesearch includes a request to search data for one or more third-partyusers having a friend connection to the user of the wirelesscommunication device.
 22. The method of claim 3, further comprisingadding at least one image stored locally on the wireless communicationdevice to the selected media data, wherein the displaying comprisesdisplaying at least one locally-stored image and at least one image ofthe received media data.
 23. The method of claim 3, wherein the userhistory data includes data based on previous communication between auser of the wireless communication device and other third-party users ofa social network application.
 24. The method of claim 5, wherein thesearch data includes history data associated with a frequency with whichthe user visits online content associated with at least one of thethird-party users.